package Day13.Demo01.Map;

/**
 * @author hyhWTX
 * @version 1.0
 * @ClassName Demo03EntrySet
 * @date 2022年07月16日 17:14
 * @Description: map集合遍历的实例
 */

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 *Map集合遍历的第二种方式:使用Entry对象遍历
 * Mqp集合中的方法:
 * set<Map.Entry<K,v>> entrySet()返回此映射中包含的映射关系的set视图。
 * 实现步骤:
 * 1.使用Nap集合中的方法entrySet(),把Map集合中多个Entry对象职出来,存储到一个set集合中
 * 2.遍历set集合,获取每—个Entry对象
 * 3.读用Entry对象中的方法getKey() 和getValue()获取键与值
 */

public class Demo03EntrySet {
    public static void main(String[] args) {
        //创建Map集合
        Map<String, Integer> map = new HashMap<>();
        map.put("赵丽颖",165);
        map.put("杨幂",160);
        map.put("林志玲",178);

        //1.使用Nap集合中的方法entrySet(),把Map集合中多个Entry对象职出来,存储到一个set集合中
        Set<Map.Entry<String, Integer>> set = map.entrySet();

        //2.遍历set集合,获取每—个Entry对象
        //使用迭代器遍历Set集合
        Iterator<Map.Entry<String, Integer>> it = set.iterator();

        while (it.hasNext()) {
            Map.Entry<String, Integer> entry = it.next();

            //3.读用Entry对象中的方法getKey() 和getValue()获取键与值
            String key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println(key+"---"+value);
        }

        System.out.println("=====================");

        //使用增强for来遍历Set集合
        for (Map.Entry<String, Integer> entry : set) {
            //3.读用Entry对象中的方法getKey() 和getValue()获取键与值
            String key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println(key+"---"+value);
        }
    }
}
